The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Computer networks that use routers, switches and other network elements are commonly managed using network management software systems. Examples of network management systems include Resource Management Essentials from Cisco Systems, Inc., San Jose, Calif.; HP OpenView from Hewlett-Packard Company, Palo Alto, Calif., and others. Such network management systems are commonly used to support detection of network events, including device faults, and to apply corrective instructions or configuration commands to network elements.
For a network owner to use such network management software systems effectively for fault management, the network owner must know how to identify events that may represent symptoms of problems, how to determine whether symptoms actually represent problems, how to diagnose the problems, how to select corrective action, and how to apply or perform the corrective action. In current approaches, these steps are performed manually, and are supported by network-specific knowledge that is mentally retained by individuals such as network administrators who operate the network management systems.
However, this approach has several serious drawbacks. For example, the knowledge described above is not captured in an organized manner to facilitate re-use with respect to new problems, or to provide continuity if a responsible individual leaves the organization. Further, the approach is manual and therefore potentially slow to respond to serious network events. In addition, the knowledge involved in the prior approaches may involve a large amount of information that is difficult for any one person to absorb and manage. Although the network administrators may apply mentally retained rules in analyzing symptoms, identifying problems and selecting corrective action, the rules are not represented by information that can be processed by machines in an automated manner.
Based on the foregoing, there is a clear need for improved network management approaches that can overcome the stated drawbacks of current approaches. There is a particular need to a way to capture network rules in a flexible way, distribute the rules to network management applications, and distribute the rules to other stakeholders associated with the network. There is also a need for a way to implement automated correlation logic to solve network problems. There is a need for a way to identify network problems by analyzing relationships of symptoms and problems.
In past approaches, certain network management systems have provided proprietary languages for defining capture network rules. Typically, such systems have involved communication of knowledge from a device engineer to a software developer who creates the network management system. When new devices or features are introduced, these systems have required software patches to update their ability recognize new devices that are introduced into the network, which is undesirable and error-prone. Thus, there is a need for a way to allow for dynamically updating rules. Further, these systems typically have involved hard-coding rules or knowledge into the software instructions that make up the systems. There is a need for a way to capture network rules in a form that is closer to human-readable natural language.